package com.webchat.act.service;

import java.util.List;
import java.util.Map;
import java.util.Set;

public interface ResourceBehaviorInter {


    /**
     * 互动操作
     *
     * @param userId
     * @param behaviorType
     * @param resourceType
     * @param resourceId
     * @return
     */
    long behavior(String userId, String resourceType, Long resourceId);


    /**
     * 取消互动操作
     *
     * @param userId
     * @param behaviorType
     * @param resourceType
     * @param resourceId
     * @return
     */
    long cancelBehavior(String userId, String resourceType, Long resourceId);

    /**
     * 批量查询资源互动量
     *
     * @param behaviorType
     * @param resourceType
     * @param resourceId
     * @return
     */
    Map<Long, Long> countBehavior(String resourceType, List<Long> resourceId);


    /**
     * 判断某个用户是否操作过
     *
     * @param userId
     * @param behaviorType
     * @param resourceType
     * @param resourceId
     * @return
     */
    Map<Long, Boolean> isBehavior(String userId, String resourceType, List<Long> resourceId);


    /**
     * 批量查询一组资源互动人员列表
     *
     * @param resourceType
     * @param resourceId
     * @return Map<资源id, 互动人员id有序列表（按照互动时间倒序）>
     */
    Map<String, Set<String>> listBehaviorUsers(String resourceType, List<Long> resourceId, int size);
}
